home *** CD-ROM | disk | FTP | other *** search
- var gYBLoginWindow = null;
- var gYBWizard = null;
- var gYBWizardStrings = null;
- var gYBTotalBookmarks = 0;
- var gYBObservService = null;
-
- var YBXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
-
- var YBcookieObserver = {
-
- observe: function(subject, topic, data) {
- // if cookie is added
- if ( data == "loggedin" ) {
- try {
- //No need to look at host as logged in message comes after verification
- //if ( subject.host == prefDomain && cookie.name == "_user" ) {
- if ( gYBLoginWindow ) {
- try {
- gYBLoginWindow.close();
- } catch (e) {
- //do nothing
- } finally {
- gYBLoginWindow = null;
- }
- var wizardMain = document.getElementById( "intro-wizard" );
- if (wizardMain.currentPage.id == "yb-wiz-welcome") {
- yb_updateWizWelcomePage();
- }
- }
- //}
- } catch ( e ) {
- yDebug.print("Introwiz loginwindow close failed: " + e, YB_LOG_MESSAGE);
- }
- }
- }
- };
-
- function yb_CleanupWizard() {
- gYBObservService = Components.classes["@mozilla.org/observer-service;1"].
- getService( Components.interfaces.nsIObserverService);
- gYBObservService.removeObserver( YBcookieObserver, "ybookmark.userChanged" );
-
- document.getElementById('yb-wiz-welcome-terms').
- removeEventListener( 'click', yb_wizard_openTermsWindow, false );
-
- document.getElementById( 'yb-wiz-welcome-login').
- removeEventListener( 'click', yb_wizard_openLoginWindow, false );
- document.getElementById( 'yb-wiz-welcome-login-another').
- removeEventListener( 'click', yb_wizard_openLoginWindow, false );
-
- document.getElementById( 'yb-wiz-welcome-create-account').
- removeEventListener( 'click', yb_wizard_openCreateUserWindow, false );
- document.getElementById( 'yb-wiz-welcome-create-account-another').
- removeEventListener( 'click', yb_wizard_openCreateUserWindow, false );
-
- document.getElementById('yb-wiz-done-tour').
- removeEventListener( 'click', yb_wizard_openTourWindow, false );
-
- if (gYBLoginWindow) {
- try {
- gYBLoginWindow.close();
- } catch (e) {
- //nothing
- } finally {
- gYBLoginWindow = null;
- }
- }
-
- }
-
- function yb_EngineInstalled() {
- var pref = Components.classes["@mozilla.org/preferences-service;1"].
- getService(Components.interfaces.nsIPrefBranch);
- pref.setBoolPref("extensions.ybookmarks@yahoo.engine.installed", true);
-
- var ss = Components.classes["@mozilla.org/ybookmarks-sync-service;1"].
- getService(Components.interfaces.nsIYBookmarkSyncService);
- ss.allowSync();
- }
-
- function yb_FinishWizard() {
- //yb_EngineInstalled();
- }
-
- function yb_wizard_openWindow(aUrl, aTitle, aWidth, aHeight) {
- // yes, it's hacky. yes, it works.
- try {
- gYBLoginWindow.location.href = aUrl;
- } catch (e) {
- gYBLoginWindow = ybookmarksUtils.openWindow(aUrl, aTitle, aWidth, aHeight);
- } finally {
- gYBLoginWindow.focus();
- }
- }
-
- function yb_wizard_openTermsWindow() {
- yb_wizard_openWindow(deliciousService.getUrl("help/terms"),
- "Terms of Service",
- 800, 600);
- }
-
- function yb_wizard_openLoginWindow() {
- yb_wizard_openWindow( deliciousService.getLoginUrl(),
- "Login into Social bookmarking service",
- 800, 600 );
- }
-
- function yb_wizard_openCreateUserWindow() {
- yb_wizard_openWindow( deliciousService.getCreateUserUrl(),
- "Create New User",
- 800, 600 );
- }
-
- function yb_wizard_openTourWindow() {
- yb_wizard_openWindow( deliciousService.getTourUrl(),
- "Tour",
- 800, 600 );
- }
-
- function yb_initWizard() {
- try {
- var ss = Components.classes["@mozilla.org/ybookmarks-sync-service;1"].
- getService(Components.interfaces.nsIYBookmarkSyncService);
- ss.cancelSync();
-
- gYBWizard = document.getElementById( "intro-wizard" );
- gYBWizardStrings = document.getElementById( "yb-wizard-strings");
- document.getElementById( "intro-wizard" ).goTo( "yb-wiz-intro" );
-
- document.getElementById('yb-wiz-welcome-terms').addEventListener(
- 'click', yb_wizard_openTermsWindow, false );
-
- document.getElementById( 'yb-wiz-welcome-login').addEventListener(
- 'click', yb_wizard_openLoginWindow, false );
- document.getElementById( 'yb-wiz-welcome-login-another').addEventListener(
- 'click', yb_wizard_openLoginWindow, false );
-
- document.getElementById( 'yb-wiz-welcome-create-account').addEventListener(
- 'click', yb_wizard_openCreateUserWindow, false );
- document.getElementById( 'yb-wiz-welcome-create-account-another').addEventListener(
- 'click', yb_wizard_openCreateUserWindow, false );
-
- document.getElementById('yb-wiz-done-tour').addEventListener(
- 'click', yb_wizard_openTourWindow, false );
-
- gYBObservService = Components.classes["@mozilla.org/observer-service;1"].
- getService( Components.interfaces.nsIObserverService);
- gYBObservService.addObserver( YBcookieObserver, "ybookmark.userChanged", false );
-
- if(ybookmarksUtils.getFFMajorVersion() > 2) {
- gYBTotalBookmarks = yb_findTotalBookmarksFF3();
- } else {
- gYBTotalBookmarks = yb_findTotalBookmarks();
- }
-
- } catch (e) {
- yDebug.print("Wizard failed: " + e, YB_LOG_MESSAGE);
- }
- }
-
- function yb_removeAllChildren(node) {
- while ( node.firstChild ) {
- node.removeChild ( node.firstChild );
- }
- }
-
- function yb_setHeaderStep(aStep) {
- var header = document.getAnonymousElementByAttribute(document.getElementById( "intro-wizard" ),
- "anonid",
- "Header");
- var box = document.getAnonymousElementByAttribute(header, "class", "wizard-header-box-text");
-
- var stepLabel;
- for (var i=0; i < box.childNodes.length; i++) {
- var child = box.childNodes[i];
- if (child.id == "yb-wizard-header-label-step") {
- stepLabel = child;
- break;
- }
- }
-
- if (!stepLabel) {
- stepLabel = document.createElementNS(YBXULNS, "label");
- stepLabel.setAttribute("class", "yb-wizard-header-label-step");
- stepLabel.setAttribute("id", "yb-wizard-header-label-step");
- box.appendChild(stepLabel);
- }
-
- stepLabel.setAttribute("value", aStep);
- }
-
- function yb_updateWizIntroPage() {
- var next = document.getElementById( "intro-wizard" ).getButton("next");
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.intro.step"));
-
- next.focus();
- }
-
- function yb_updateWizWelcomePage() {
- var service = deliciousService.getServiceName();
- var username = deliciousService.getUserName();
- var loggedIn = document.getElementById("yb-wiz-welcome-logged-in");
- var notLoggedIn = document.getElementById("yb-wiz-welcome-not-logged-in");
-
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.welcome.step"));
- if (username) {
- var next = gYBWizard.getButton("next");
- /* var cont = document.getElementById("yb-wiz-welcome-continue");
- if (cont.childNodes.length <= 1) {
- var contText = document.createTextNode(
- gYBWizardStrings.getFormattedString("extensions.ybookmarks.wiz.welcome.continue",
- [next.label]));
- cont.insertBefore(contText, cont.firstChild);
- cont.appendChild(document.createTextNode("."));
- }*/
- loggedIn.hidden = false;
- notLoggedIn.hidden = true;
- document.getElementById("yb-wiz-welcome-current-user").setAttribute("value", username);
- gYBWizard.canAdvance = true;
- } else {
- loggedIn.hidden = true;
- notLoggedIn.hidden = false;
- gYBWizard.canAdvance = false;
- }
- }
-
- function yb_rewindWizWelcomePage() {
- gYBWizard.canAdvance = true;
- }
-
- function yb_updateWizBasicSetupPage() {
-
- var service = deliciousService.getServiceName();
- var username = deliciousService.getUserName();
- var importDesc = document.getElementById( "yb-wiz-setup-import-desc" );
- var importYes = document.getElementById( "yb-wiz-setup-import-yes" );
- var importNo = document.getElementById( "yb-wiz-setup-import-no" );
-
- var totalNumberOfBookmarks = gYBTotalBookmarks;
-
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.setup.step"));
-
- if (importDesc.childNodes.length == 0) {
- importDesc.appendChild(document.createTextNode(gYBWizardStrings.getFormattedString(
- "extensions.ybookmarks.wiz.setup.import.desc",
- [ totalNumberOfBookmarks, service ] ) ));
- }
-
- importYes.setAttribute( "label", gYBWizardStrings.getFormattedString(
- "extensions.ybookmarks.wiz.setup.import.yes",
- [ username, service ] ) );
-
- importNo.setAttribute( "label", gYBWizardStrings.getString( "extensions.ybookmarks.wiz.setup.import.no" ));
-
- }
-
- function yb_checkImportChoice() {
- var importRadio = document.getElementById("yb-wiz-setup-import-yes");
- if( importRadio.selected ) {
- document.getElementById( "yb-wiz-setup" ).setAttribute( "next", "yb-wiz-setup-advance" );
- }
- else {
- document.getElementById( "yb-wiz-setup" ).setAttribute( "next", "yb-wiz-done" );
- }
- return true;
- }
-
- function yb_rewindWizAdvanceSetupPage() {
- document.getElementById( "yb-wiz-setup" ).setAttribute( "next", "yb-wiz-done" );
- }
-
- function yb_updateWizAdvanceSetupPage() {
- var easy = document.getElementById("yb-wiz-setup-import-type-easy");
- var advanced = document.getElementById("yb-wiz-setup-advance-import-options");
- var custom = document.getElementById("yb-wiz-setup-import-type-custom");
-
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.setup.advance.step"));
-
- if (easy.selected) {
- advanced.hidden = true;
- } else {
- advanced.hidden = false;
- }
- }
-
-
- function yb_importTypeSelected(event) {
- var advanced = document.getElementById("yb-wiz-setup-advance-import-options");
-
- if (event.target.value==1) {
- advanced.hidden = false;
- } else {
- advanced.hidden = true;
- }
- }
-
-
- function _getContentsRecursively(node, count) {
- if(!node) {
- return;
- }
-
- var Ci = Components.interfaces;
- //Handle bookmarks
- if(node.type == Ci.nsINavHistoryResultNode.RESULT_TYPE_URI) {
- yDebug.print("Bookmark: " + node.title);
- //1 is the count.
- return 1;
- }
-
- //Handle folders
- if(node.type == Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER) {
- //Check to avoid Smart Bookmarks and Live Bookmarks.
- if(node.parent && (Application.bookmarks.toolbar.title == node.parent.title)) {
- yDebug.print("Ignoring folder as parent is toolbar:" + node.title);
- return 0;
- }
- var container = node.QueryInterface(Ci.nsINavHistoryContainerResultNode);
- var containerCount = 0;
- if(container) {
- container.containerOpen = true;
- //yDebug.print("->" + node.title + " -> has " + container.childCount + " children \n",YB_LOG_MESSAGE);
- for (var i = 0; i < container.childCount; i++) {
- var newNode = container.getChild(i);
- containerCount += _getContentsRecursively(newNode);
- //yDebug.print("Child: " + node.title + " and result type is :" + node.type + "\n", YB_LOG_MESSAGE);
- }
- container.containerOpen = false;
- }
- return containerCount;
- }
- return 0;
- }
-
- function yb_findTotalBookmarksFF3() {
- try {
- var historyService = Components.classes["@mozilla.org/browser/nav-history-service;1"]
- .getService(Components.interfaces.nsINavHistoryService);
- var options = historyService.getNewQueryOptions();
- var query = historyService.getNewQuery();
- var bookmarksService = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"]
- .getService(Components.interfaces.nsINavBookmarksService);
-
- var foldersToSearch = new Array(bookmarksService.toolbarFolder,
- bookmarksService.unfiledBookmarksFolder,
- bookmarksService.bookmarksMenuFolder);
- var count = 0;
- for (x in foldersToSearch) {
- query.setFolders([foldersToSearch[x]], 1);
- var result = historyService.executeQuery(query, options);
- var rootNode = result.root;
- //yDebug.print("Node type of ROOT is:" + rootNode.type + " and title is :" + rootNode.title, YB_LOG_MESSAGE);
- count += _getContentsRecursively(rootNode);
- }
- yDebug.print("yb_findTotalBookmarksFF3()::=>Total bookmarks count is: " + count, YB_LOG_MESSAGE);
- return count;
- } catch(e) {
- yDebug.print("Exception in yb_findTotalBookmarksFF3()::=>" + e, YB_LOG_MESSAGE);
- return 0;
- }
- }
-
- function yb_findTotalBookmarks() {
- var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
- getService( Components.interfaces.nsIRDFService);
- var bookmarks = rdfService.GetDataSource( "rdf:bookmarks" );
- bookmarks = bookmarks.QueryInterface ( Components.interfaces.nsIBookmarksService );
- bookmarks.readBookmarks();
-
- var typeResource = rdfService.GetResource ( "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" );
- var bookmarkResource = rdfService.GetResource ( "http://home.netscape.com/NC-rdf#Bookmark" );
- var allResources = bookmarks.GetAllResources();
- var totalBookmarks = 0;
- while ( allResources.hasMoreElements() ) {
- var rsc = allResources.getNext();
- var type = bookmarks.GetTarget( rsc, typeResource, true );
- try {
- type.QueryInterface ( Components.interfaces.nsIRDFResource );
- if (type.EqualsNode( bookmarkResource ) )
- ++totalBookmarks;
- } catch ( e ) {
- }
- }
-
- return totalBookmarks;
-
- }
-
- function yb_updateWizImportingPage() {
- var click = document.getElementById("yb-wiz-importing-click");
- var cancel = gYBWizard.getButton("cancel");
- var back = gYBWizard.getButton("back");
- cancel.hidden = true;
- back.hidden = true;
-
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.importing.step"));
-
-
- if (click.childNodes.length == 0) {
- var next = gYBWizard.getButton("next");
- var clickString = gYBWizardStrings.getFormattedString("extensions.ybookmarks.wiz.importing.click",
- [next.label]);
-
- click.appendChild(document.createTextNode(clickString));
- }
-
- var options = document.getElementById("yb-wiz-setup-advance-import-options");
- var custom = document.getElementById("yb-wiz-setup-import-type-custom");
-
- if (!custom.selected) {
- options.setToDefaults();
- }
-
- var args = YBJSON.stringify({ addTags: (options.addTags ? options.addTagsAsArray : []),
- addPopularTags: options.addPopularTags,
- replaceDuplicates: options.replaceDuplicates,
- filePath: ""});
-
- var xpcArgs = Components.classes["@mozilla.org/supports-string;1"].
- createInstance(Components.interfaces.nsISupportsString);
- var xpcSubject = Components.classes["@mozilla.org/supports-string;1"].
- createInstance(Components.interfaces.nsISupportsString);
- xpcSubject.data = "startImport";
- xpcArgs.data = args;
-
- gYBObservService.notifyObservers(xpcSubject, "ybookmark.importBookmarks", xpcArgs);
- /*
- ybookmarksUtils.startImport((options.addTags ? options.addTagsAsArray : []),
- options.addPopularTags,
- options.replaceDuplicates,
- null);
- */
- yb_EngineInstalled();
-
- }
-
- function yb_hideWizImportingPage() {
- }
-
- function yb_updateWizDonePage() {
- yb_setHeaderStep(gYBWizardStrings.getString("extensions.ybookmarks.wiz.done.step"));
-
- yb_EngineInstalled();
-
- }
-
- function yb_CancelWizard() {
- var rv = window.arguments[0];
- window.openDialog( "chrome://ybookmarks/content/introWizCancelled.xul",
- "", "chrome,dialog,centerscreen,modal,resizable=no", rv );
-
- return rv.aborted;
- }
-